<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="c_rt" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fmt_rt" uri="http://java.sun.com/jstl/fmt_rt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix="x_rt" uri="http://java.sun.com/jstl/xml_rt"%>
<%@ taglib prefix="wr_fn" uri="http://njo.org/taglib/functions"%>
${wr_fn:isEmpty(package) ? '' : wr_fn:evaluate('package ${package};', pageContext)}

/**
 * 适配器类.这个适配器属于一个对象适配器.
 * 对象适配器:通过在适配器中 保存适配(器)源
 *            (作为适配器成员,始终保存有适配(器)源实例)
 *            实现的适配器.
 *
 * 1,这个类实现了Target类(接口)中的request方法.
 * 2,通过构造方法加载适配(器)源类,并作为成员存在.
 */
public class ${pgid}Adapter extends Target {

    /**
     * 保存适配(器)源.
     */
    private Adaptee adaptee;

    /**
     * 构造方法.
     *
     * 通过参数加载适配(器)源,并保存在成员变量中.
     *
     * @param a 适配(器)源
     */
    public Adapter(Adaptee a) {
        adaptee = a;
    }

    /**
     * 实现任务(Target类中定义的request方法).
     */
    public void request() {
        adaptee.specificRequest();
    }
}
